Android listview 点击item没有变色效果
又遇一坑:
listview里写了半天,发现点击item的时候默认的变灰色的效果没了。
一开始试着修改listview的属性:android:listSelector 但是改成什么都没有效果。
后来以为是由于item里面子view把焦点抢走了,导致listview得不到焦点没法响应点击事件,但是写了个OnItemClickListener以后发现点击事件可以正常响应。
网上找了半天总算找到了原因:因为设置了item的背景颜色导致了默认的点击变色效果失效。如果要设置listview的背景颜色的话直接在listview的属性里设置就好了。如果一定要设置item的背景色,网上给出了一个解决办法:
ListView中设置item的背景色后,默认的行点击颜色失效的解决办法
本文的方法来自此处:http://daniel-codes.blogspot.com/2010/07/how-to-change-listview-rows-background.html
只说明一下用法:
建立一个drawable的XML文件,当然放在drawable文件夹下,比如保存文件为bg_list_item.xml
输入以下代码:
<?xml version="1.0" encoding="UTF-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_window_focused="false" android:state_selected="true" android:drawable="@android:color/transparent" />
<item android:state_selected="true" android:drawable="@android:color/transparent" />
<item android:state_pressed="true" android:state_selected="false" android:drawable="@android:color/transparent" />
<item android:state_selected="false" android:drawable="@color/guide_list_item_bg" />
</selector>
注意红字的地方,改成你想用的背景图片或者颜色。
在XML布局文件中可以,用 android:background=”@drawable/bg_list_item” 设置。
在java中可以用 View的 setBackgroundResrouce(R.drawable.bg_list_item); 来设置
作者:holmes Zhang
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,否则保留追究法律责任的权利。